iT邦幫忙

2023 iThome 鐵人賽

DAY 2
0
自我挑戰組

30天leetcode學習旅程系列 第 2

項次2-Dynamic Arrays

  • 分享至 

  • xImage
  •  

Java中的List是一種動態矩陣,可以根據需要自動擴展大小。在使用List時,經常需要操作其中的元素,以下是常用的Java List函數使用方式:

  • add(E e):在尾部添加元素e。例如:list.add(1)
  • add(int index, E element):在指定位置插入元素element。例如:list.add(1, 1),表示在索引1的位置插入元素1。
  • get(int index):返回指定位置的元素。例如: Integer number = list.get(0),表示獲取索引0的元素並賦值給變量number。
  • remove(int index):移除指定位置的元素。例如:list.remove(2),表示移除索引2的元素。
  • set(int index, E element):替換指定位置的元素。例如:list.set(0, 1),表示替換索引0的元素為1。
  • size():返回列表的元素數量。例如:int length = list.size(),表示獲取List的元素個數並賦值給變量length。

在使用Java List時,還可以使用迭代器(Iterator)對List中的元素進行遍歷,具體代碼如下:

List<Integer> numberList = new ArrayList<>();
numberList.add(1);
numberList.add(2);
numberList.add(3);

Iterator<Integer> numberIterator = numberList.iterator();
while(numberIterator.hasNext()) {
    Integer number = numberIterator.next();
    System.out.println(number);
}

題目:1929. Concatenation of Array

連結:https://leetcode.com/problems/concatenation-of-array/description/

  • 等級:Easy

解題思路

  1. 使用index紀錄陣列長度,建立新矩陣
  2. 取值同時複製到兩個位置
class Solution {
    public int[] getConcatenation(int[] nums) {
        int n = nums.length;
        int [] result = new int [n*2];
        for (int i = 0;i < n; i++)
        {
            result[i] = nums[i];
            result[n+i] = nums[i];
        }
        return result;
    }
}
  • Time complexity: O(n)
  • Space complexity: O(n)

題目:118. Pascal's Triangle

連結:https://leetcode.com/problems/pascals-triangle/description/

  • 等級:Easy

解題思路

  1. 紀錄前一個矩陣
  2. 記錄當前矩陣,第一個值與最後一個為利用前一個矩陣計算算中間數值
class Solution {
    public List<List<Integer>> generate(int numRows) {
        List<List<Integer>> result = new ArrayList<List<Integer>>();
        List<Integer> prev = new ArrayList<Integer>();
        prev.add(1);
	    result.add(prev);
        for (int i = 2;i <= numRows; i++)
        {
            ArrayList<Integer> curr = new ArrayList<Integer>();
            curr.add(1);
            for (int j = 0; j < prev.size()-1;j++)
                curr.add(prev.get(j) + prev.get(j+1));
            curr.add(1);
            result.add(curr);
            prev = curr;
        }
        return result;
    }
}
  • Time complexity: O(n^2)
  • Space complexity: O(n)

上一篇
項次1 - Static Arrays
下一篇
項次3 - Stacks-1
系列文
30天leetcode學習旅程30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言